﻿using System;
using System.Collections.Generic;
using System.Data;
using Esint.Common.Model;
using Esint.JudicialAuction.Model;

namespace Esint.JudicialAuction.IDAL
{
    /// <summary>
    /// 模块名称： 数据访问接口层
    /// 作    者：谷明
    /// 生成日期：2020年03月29日
    /// 生成模板: Esint.Template.IDAL.IDAL_01 版
    /// 修改说明：
    /// </summary>
    public partial interface ISchedule_UserData:IBaseData
    {
        /// <summary>
        /// 获得当前排班值不是最大的，并且符合不连班需求的所有人方法（用于顺序排班的第二天排白/夜班）
        /// </summary>
        /// <param name="currDate">要排班的日期</param>
        /// <param name="workType">值班类型</param>
        /// <returns></returns>
        List<Schedule_UserInfo> GetCanBeAutoAndMinestTimesList(string currDate, int workType);

        /// <summary>
        /// 根据查询条件获得所有排班人员分页集合对象
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="isAvailable"></param>
        /// <returns></returns>
        PagedList<Schedule_UserInfo> GetSchedulUserList(string userName, byte? isAvailable, int? gender, int pageIndex, int pageSize);


        /// <summary>
        /// 保存列表方法
        /// </summary>
        /// <param name="list"></param>
        void SaveMutli(List<Schedule_UserInfo> list);

        /// <summary>
        /// 获得所有用户列表
        /// </summary>
        /// <returns></returns>
        List<Schedule_UserInfo> GetAllUserList();

        /// <summary>
        /// 根据id集合获得用户列表
        /// </summary>
        /// <param name="userIdList"></param>
        /// <returns></returns>
        List<Schedule_UserInfo> GetUserListByIdList(List<string> userIdList);

        /// <summary>
        /// 获得所有参与排班的用户的权重平均值
        /// </summary>
        /// <returns></returns>
        int GetAllUserAverageWeight();

        /// <summary>
        /// 获得人员比
        /// </summary>
        /// <returns></returns>
        double[] GetAvailableUserGenderNum();

    }
}
